package com.shujia.Day07;

public class Demo04StringFunction {
    public static void main(String[] args) {
        /*
            TODO String类的方法
                1.构造方法
                    new String(char[] chars)
                    new String(byte[] bytes)
                2.判断功能
                    boolean equals(Object obj)  等值判断  // 非常重要
                    boolean equalsIgnoreCase(String str)  // 忽略大小写比较字符串
                    boolean contains(String str) // 是否包含某个子字符串
                    boolean startsWith(String str)  // 判断是否以某个子字符串为开头
                    boolean endsWith(String str)
                    boolean isEmpty()
               3.String类的获取功能
                    int length() => 获取字符长度 // 非常重要
                    char charAt(int index) => 根据下标获取其对应下标位置上的数据 => 字符串可以看成是char类型的数组
                    int indexOf(int ch)   indexOf是用于返回其传入参数在字符串中的下标
                    int indexOf(String str)
                    int indexOf(int ch,int fromIndex)
                    int indexOf(String str,int fromIndex)  fromIndex 表示从某个开始下标寻找
                    String substring(int start)  // 非常重要  从某个开始下标截取字符串直到末尾
                    String substring(int start,int end) // 非常重要  从某个开始下标截取字符串直到结束下标  左闭右开区间



         */
        char[] chars = {'a','b','c','d'};
        String char2Str = new String(chars);
        System.out.println(char2Str);

        // TODO 字符串来说 认为byte[]中保存的数据是字节数据，在创建对象时，会根据其ASC码值将其转换成对应的字符
        byte[] bytes = {97,98,99};
        System.out.println(new String(bytes));  // abc


        String str = "ABCD";
        System.out.println(char2Str.equalsIgnoreCase(str));  // true

        System.out.println(char2Str.contains("a")); // true

        System.out.println(str.startsWith("AB")); // true
        System.out.println(str.endsWith("CD")); // true

        System.out.println(str.isEmpty()); //

        // 对字符串赋予 null 值之后，对于其指向的内地址消失 所以调用时会出现空指针异常
//        String nullStr = null;
        String emptyStr = "";
//        System.out.println(nullStr.isEmpty()); // java.lang.NullPointerException
        System.out.println(emptyStr.isEmpty()); // true

        System.out.println(str.length()); // 4
        System.out.println(str.charAt(0));

        System.out.println(str.indexOf("BC")); // 1

        String str2 = "ABCDABCD";
        System.out.println(str2.indexOf("BC",2)); // 5

        System.out.println(str2.substring(2)); // CDABCD
        System.out.println(str2.substring(2,6));  // CDAB

    }
}
